/*
 * CodeProcessGeneratorClass.java	 
 *
 * Copyright 2012 Universidad Francisco de Paula Santander (UFPS).
 * Todos los Derechos Reservados.
 * Creado el 07/10/12, 11:23:38 AM
 */
package com.ufps.cuatro.util.generadores.codeobject;

import java.util.ArrayList;

/**
 * <i><b>CodeProcessGeneratorClass:</b></i><p>Define los Métodos que se requieren
 * para la implementación de los Clases en la Generación del Código Fuente.</p> 
 * 
 * @author Carlos A. Torres C. - Dolly E. Guerrero. <https://code.google.com/p/tesis4dor/>
 * @version 1.0 07/10/12
 */
public interface CodeProcessGeneratorClass { 
    /**
     * Devuelve el Código Fuente de las Definiciones de los Imports que se requieren en la Generación de la Clase Procesada.
     * @param objSourceLinesCode Colección que almacenará el Código Fuente Generado.
     */
    public void generateSourceCodeSyntaxImport(ArrayList<CodeContextLine> objSourceLinesCode);
    /**
     * Devuelve el Código Fuente de las Definiciones de los Atributos que se requieren en la Generación de la Clase Procesada.
     * @param objSourceLinesCode Colección que almacenará el Código Fuente Generado.
     */
    public void generateSourceCodeSyntaxDefinitionFields(ArrayList<CodeContextLine> objSourceLinesCode);
    
    /**
     * Devuelve el Código Fuente de las Inicializaciones de los Atributos que se requieren en la Generación de la Clase Procesada.
     * @param objSourceLinesCode Colección que almacenará el Código Fuente Generado.
     */
    public void generateSourceCodeSyntaxInitializationFields(ArrayList<CodeContextLine> objSourceLinesCode);
    
    /**
     * Devuelve el Código Fuente de las Inicializaciones de la Propiedades de los Atributos que se requieren en la Generación de la Clase Procesada.
     * @param objSourceLinesCode Colección que almacenará el Código Fuente Generado.
     */
    public void generateSourceCodeSyntaxInitializationPropertiesFields(ArrayList<CodeContextLine> objSourceLinesCode);
    
    /**
     * Devuelve el Código Fuente de las Distribuciones de los Atributos que se requieren en la Generación de la Clase Procesada.
     * @param objSourceLinesCode Colección que almacenará el Código Fuente Generado.
     */
    public void generateSourceCodeSyntaxInitializationGridBagConstraintsFields(ArrayList<CodeContextLine> objSourceLinesCode);
    
    /**
     * Devuelve el Código Fuente de las Definiciones de los Eventos Aplicados a los Atributos que se requieren en la Generación de la Clase Procesada.
     * @param objSourceLinesCode Colección que almacenará el Código Fuente Generado.
     */
    public void generateSourceCodeSyntaxFieldsEventsDefinition(ArrayList<CodeContextLine> objSourceLinesCode);    
    
    /**
     * Devuelve el Código Fuente de las Implementaciones de la Funciones de los Eventos Aplicados a los Atributos que se requieren en la Generación de la Clase Procesada.
     * @param objSourceLinesCode Colección que almacenará el Código Fuente Generado.
     */
    public void generateSourceCodeSyntaxFieldsEventsImplement(ArrayList<CodeContextLine> objSourceLinesCode);    
    
    /**
     * Devuelve el Código Fuente de las Funciones que Encapsulan las Propiedades Representadas por los Compoennte Generadores que se requieren en la Generación de la Clase Procesada.
     * @param objSourceLinesCode Colección que almacenará el Código Fuente Generado.
     */
    public void generateSourceCodeSyntaxEncapsulateFunctions(ArrayList<CodeContextLine> objSourceLinesCode);    
}
